/**
 * Created by PanJiaChen on 16/11/18.
 */

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

// 自定义验证用户名的函数
const exg = /^([a-zA-Z0-9_-]|[\u4E00-\uFA29]){3,8}$/
export function validateUserName(rule, value, callback) {
  // 非空验证
  if (value === '') {
    callback(new Error('请输入用户名'))
  } else if (!exg.test(value)) {
    callback(new Error('用户名包含3-8位字母、数字和下划线！'))
  } else {
    callback()
  }
}

// 自定义验证密码的函数
const reg = /^[a-zA-Z0-9_-]{3,12}$/
export function validatePWD(rule, value, callback) {
  // 非空验证
  if (value === '') {
    callback(new Error('请输入密码'))
  } else if (!reg.test(value)) {
    callback(new Error('密码包含3-12位字母、数字和下划线！'))
  } else {
    callback()
  }
}

// 新密码的验证规则
export function validNewPass(o) {
  return function(rule, value, callback) {
    // 非空验证
    if (value === '') {
      callback(new Error('请输入新密码'))
    } else if (!reg.test(value)) {
      callback(new Error('密码包含3-12位字母、数字和下划线！'))
    } else {
      if (o.passForm.checkPass !== '') {
        o.$refs.passForm.validateField('checkPass')
      }
      callback()
    }
  }
}

// 自定义确认新密码是否一致的函数
export function checkPassword(o) {
  return function(rule, value, callback) {
    if (value === '') {
      callback(new Error('请再次输入密码'))
    } else if (value !== o.passForm.pwd) {
      callback(new Error('两次输入密码不一致!'))
    } else {
      callback()
    }
  }
}
